#==============================================================================
# ■ キャラクター画像表示拡張
#  CharacterGraphicExtend.rb
#------------------------------------------------------------------------------
# 　キャラクター画像を回転させたり、表示座標をピクセル単位で調整したりします。
#
# ●使い方
# 1. 「移動ルートの設定」から「スクリプト」で以下を実行します。
#    self.rotate(90, 0, 0) -> 時計回りに90度回転させたい場合
# 2. 回転は足下を原点にして行われるので、必要に応じてX座標とY座標を補正します。
#    self.rotate(90, 16, -16) -> 時計回りに90度回転させ
#                                X座標を右に16、Y座標を上に16ずらします。
#
# ●利用規約
#  作者に無断で改変、再配布が可能で、利用形態（商用、18禁利用等）についても
#  制限はありません。
#  このスクリプトはもうあなたのものです。
#-----------------------------------------------------------------------------
# Copyright (c) 2016 Triacontane
# This software is released under the MIT License.
# http://opensource.org/licenses/mit-license.php
#-----------------------------------------------------------------------------
# Version
# 1.0.1 2016/05/05 スクリプトを適用していないセーブデータをロードすると
#                  エラーが発生する不具合を修正
# 1.0.0 2016/05/04 初版
# ----------------------------------------------------------------------------
# [Blog]   : http://triacontane.blogspot.jp/
# [Twitter]: https://twitter.com/triacontane/
# [GitHub] : https://github.com/triacontane/
#=============================================================================

class Game_CharacterBase
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :angle                       # 回転角
  attr_accessor :adjustment_x                # X座標補正
  attr_accessor :adjustment_y                # Y座標補正
  #--------------------------------------------------------------------------
  # ● 公開メンバ変数の初期化
  #--------------------------------------------------------------------------
  alias cge_init_public_members init_public_members
  def init_public_members
    cge_init_public_members
    @angle = 0
    @adjustment_x = 0
    @adjustment_y = 0
  end
  #--------------------------------------------------------------------------
  # ● 画面 X 座標の取得
  #--------------------------------------------------------------------------
  alias cge_screen_x screen_x
  def screen_x
    cge_screen_x + (@adjustment_x ? @adjustment_x : 0)
  end
  #--------------------------------------------------------------------------
  # ● 画面 Y 座標の取得
  #--------------------------------------------------------------------------
  alias cge_screen_y screen_y
  def screen_y
    cge_screen_y + (@adjustment_y ? @adjustment_y : 0)
  end
  #--------------------------------------------------------------------------
  # ● 回転
  #--------------------------------------------------------------------------
  def rotate(angle, adjustment_x, adjustment_y)
    @angle = angle
    @adjustment_x = adjustment_x
    @adjustment_y = adjustment_y
  end
end

class Sprite_Character
  #--------------------------------------------------------------------------
  # ● その他の更新
  #--------------------------------------------------------------------------
  alias cge_update_other update_other
  def update_other
    cge_update_other
    self.angle = (@character.angle ? @character.angle : 0)
  end
end
